home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
64'er
/
64ER_CD.iso
/
s85xx
/
s8507a.d64
/
disk manager
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
1995-03-30
|
9KB
|
428 lines
10 REM " [196]ISK [205]ANAGER [214]4.0
11 [143] "
12 REM " [214]ON [212]HOMAS [207]MERZU
13 [143] " PEEKIRKENWEG 3
14 REM " 4413 [194]EELEN
15 [143] "
16 REM " 06/09/85
17 [143] "
20 :
21 O1=6501: M1=O1+1
22 O2=301 : M2=O2+1
25 DIM DI$(150),K(150)
26 DIM SI(4) : REM SPEICHERINFO
30 AN=0
35 DEFFNH(X)=INT(X/256)
36 DEFFNL(X)=X-256*FNH(X)
40 DEFFNM1(X)=X-(INT(X/O1)*O1)+1
41 DEFFNM2(X)=X-(INT(X/O2)*O2)+1
42 C1$=" [146][157]":C1=20
43 C2$=" [157]": C2=2*C1
44 RE$=""
45 HK$=CHR$(34)
46 NU$=CHR$(0)
47 DF$=" "
48 DL$=CHR$(254)+CHR$(255)
50 :
90 GOTO 1000
95 :
97 REM
98 REM ---- "[200]ASH-[198]UNKTION 1" ----
99 REM
100 ID=0
101 LE=LEN(ID$):IFLE=0THENID=1:RETURN
102 FORI=1TOLE
110 A$=MID$(ID$,I,1)
130 ID=FNM1(ID*26+ASC(A$))
140 NEXT
150 RETURN
197 REM
198 REM ---- "[200]ASH-[198]UNKTION 2" ----
199 REM
200 DI=0
201 LE=LEN(DI$):IFLE=0THENDI=1:RETURN
202 FORI=1TOLE
210 A$=MID$(DI$,I,1)
230 DI=FNM2(DI*26+ASC(A$))
240 NEXT
250 RETURN
297 REM
298 REM ---- "[208]ROGRAMMFILE LESEN" ----
299 REM
300 PRINT#15,"P"CHR$(2)CHR$(FNL(ID))CHR$(FNH(ID))CHR$(1)
310 INPUT#2,PR$
320 PRINT#15,"P"CHR$(2)CHR$(FNL(ID))CHR$(FNH(ID))CHR$(18)
330 GET#2,A1$,A2$,A3$,A4$,CO$
340 DI=ASC(A1$+NU$)+256*ASC(A2$+NU$)
345 NE=ASC(A3$+NU$)+256*ASC(A4$+NU$)
350 RETURN
357 REM
358 REM ---- "[196]ISKFILE LESEN" ----
359 REM
360 PRINT#15,"P"CHR$(2)CHR$(FNL(DI))CHR$(FNH(DI))CHR$(1)
370 INPUT#2,NA$,IN$
375 PRINT#15,"P"CHR$(2)CHR$(FNL(DI))CHR$(FNH(DI))CHR$(25)
380 GET#2,A1$,A2$,A3$,A4$
385 NE=ASC(A1$+NU$)+256*ASC(A2$+NU$)
387 FR=ASC(A3$+NU$)+256*ASC(A4$+NU$)
390 RETURN
397 REM
398 REM ---- "[208]ROGFILE SCHREIBEN" ----
399 REM
400 PRINT#15,"P"CHR$(2)CHR$(FNL(ID))CHR$(FNH(ID))CHR$(1)
410 PRINT#2,ID$
420 PRINT#15,"P"CHR$(2)CHR$(FNL(ID))CHR$(FNH(ID))CHR$(18)
430 PRINT#2,CHR$(FNL(DN))CHR$(FNH(DN))CHR$(FNL(KO))CHR$(FNH(KO))CO$;
450 RETURN
457 REM
458 REM ---- "[196]ISKFILE SCHREIBEN" ----
459 REM
460 PRINT#15,"P"CHR$(2)CHR$(FNL(DI))CHR$(FNH(DI))CHR$(1)
470 PRINT#2,DI$","I$
475 PRINT#15,"P"CHR$(2)CHR$(FNL(DI))CHR$(FNH(DI))CHR$(25)
480 PRINT#2,CHR$(FNL(KO))CHR$(FNH(KO))CHR$(FNL(FR))CHR$(FNH(FR))
490 RETURN
497 REM
498 REM ---- "[211]PEICHERINFO LESEN" ----
499 REM
500 OPEN5,8,5,"#":GOSUB700
510 PRINT#15,"B-R:" 5;0;18;0
520 PRINT#15,"B-P:" 5;200
525 FOR SI=0 TO 4
530 GET#5,A1$,A2$:SI(SI)=ASC(A1$+NU$)+256*ASC(A2$+NU$):NEXT
535 CLOSE5:RETURN
547 REM
548 REM--- "[211]PEICHERINFO SCHREIBEN" ---
549 REM
550 OPEN5,8,5,"#":GOSUB700
555 PRINT#15,"B-R:" 5;0;18;0
560 PRINT#15,"B-P:" 5;200
565 FOR SI=0 TO 4
570 PRINT#5,CHR$(FNL(SI(SI)))CHR$(FNH(SI(SI)));:NEXT
575 PRINT#15,"B-W:" 5;0;18;0
580 CLOSE5:RETURN
597 REM
598 REM ---- "[201]RGENDEINE [212]ASTE" ----
599 REM
600 PRINT:PRINT"[215]EITER MIT EINER [212]ASTE: ";:GOSUB800:PRINT:PRINT:RETURN
697 REM
698 REM ---- "[196]ISK [197]RROR" ----
699 REM
700 INPUT#15,DS,DS$,TR,SE
710 IF(DS=0)OR(DS=50)OR(DS=51)THENRETURN
720 PRINT:PRINT"[196]ISK [197]RROR:"DS;DS$;TR;SE
730 CLOSE2:CLOSE15
740 GOSUB600:GOTO1000
797 REM
798 REM ---- "[212]ASTATUREINGABE" ----
799 REM
800 C=0
810 GETE$:C=C+1:IFC=C1THENPRINTC1$;
820 IFC=C2THENPRINTC2$;:C=0
830 IFE$=""THENGOTO810
840 PRINTC2$;:RETURN
897 REM
898 REM ---- "[212]ITEL" ----
899 REM
900 PRINT"[147]";:FORI=1TO40:PRINT"[192]";:NEXT
910 PRINT:PRINT" [196]ISK [205]ANAGER [214]4.0
930 [153]:[129]I[178]1[164]40:[153]"TAN";:[130]
940 [153]:[153]:[142]
997 [143]
998 [143] ---- "LEFT$AUPTMENUE" ----
999 [143]
1000 [151]53280,0:[151]53281,0:[141]900
1010 [153]"< 1 > (null)ROGRAMM SUCHEN
1020 PRINT"< 2 > [196]IRECTORY EINLESEN & SPEICHERN
1025 [153]"< 3 > STR$IRECTORY LISTEN
1026 PRINT"< 4 > [196]IRECTORY LOESCHEN
1027 [153]"< 5 > (null)ROGRAMM LOESCHEN
1028 PRINT"< 6 > [211]PEICHERINFO
1029 [153]"< 7 > (null)EUE STR$ATENDISK ANLEGEN
1031 PRINT"< 0 > [197]NDE"
1040 PRINT"[201]HRE [215]AHL? ";
1045 GOSUB800:W$=E$
1050 IFW$="0"THENPRINT:PRINT"(C) 1985 BY [212]HOMAS [207]MERZU.":END
1060 ON VAL(W$)GOTO1200,6000,2000,3000,9000,8000,4000
1070 GOTO1000
1197 REM
1198 REM ---- "[208]ROGRAMM SUCHEN" ----
1199 REM
1200 GOSUB900:FL=0
1210 OPEN15,8,15:OPEN2,8,2,"PROGFILE,L":GOSUB700
1220 INPUT"[208]ROGRAMMNAME";ID$:GOSUB100:
1225 GOSUB300
1230 IFPR$=ID$THEN1300
1240 IFPR$=CHR$(255)THENPRINT"[208]ROGRAMM NICHT VORHANDEN.":GOTO1400
1250 ID=ID+1:IFID>O1THENID=1
1260 GOTO1225
1300 CLOSE2
1310 OPEN2,8,2,"DISKFILE,L"
1320 GOSUB360:IFFLTHEN1350
1330 PRINT:PRINT"[196]AS [208]ROGAMM "HK$ID$HK$
1335 FL=-1
1340 PRINT"IST GESPEICHERT AUF DE";
1345 IFCO$="+"THENPRINT"N [196]ISKETTEN":GOTO1350
1347 PRINT"R [196]ISKETTE"
1350 PRINT""HK$;NA$;HK$" "IN$
1360 IFCO$<>"+"THEN1400
1370 GETA$:IFA$=""THENCLOSE2:OPEN2,8,2,"PROGFILE,L":GOTO1250
1380 PRINT"BREAK.
1400 [160]2:[160]15
1410 [141]600:[137]1000
1997 [143]
1998 [143] ---- "STR$IRECTORY LISTEN" ----
1999 [143]
2000 [141]900
2010 [133]"STR$ISKNAME";DI$
2020 DI$[178][200](DI$[170]DF$,16):[141]200
2030 [159]15,8,15:[159]2,8,2,"DISKFILE,L":[141]700
2040 [141]360:[141]700
2050 [139]NA$[178]DI$[167]2100
2060 [139]NA$[178][199](255)[167]2090
2070 DI[178]DI[170]1:[139]DI[177]O2[167]DI[178]1
2080 [137]2040
2090 [153]"STR$IRECTORY NICHT GESPEICHERT.":[160]2:[160]15:[141]600:[137]1000
2100 [153]""HK$;DI$;HK$" "IN$
2110 [160]2
2120 [159]2,8,2,"PROGFILE,L":[141]700
2130 [139]NE[178]0[167]2200
2135 [161]A$:[139]A$[179][177]""[167][153]"BREAK.":[137]2210
2140 ID[178]NE:[141]300
2150 [153]" "HK$;PR$;HK$
2160 [139]PR$[178][199](255)[167]NE[178]0
2170 [137]2130
2200 [153]FR"PEEKLOCKS FREE.
2210 CLOSE2:CLOSE15:GOSUB600:GOTO1000
2997 REM
2998 REM ---- "[196]IRECTORY LOESCHEN" ----
2999 REM
3000 GOSUB900
3010 INPUT"[196]ISKNAME";DI$
3020 DI$=LEFT$(DI$+DF$,16):GOSUB200
3030 OPEN15,8,15
3033 GOSUB500
3035 OPEN2,8,2,"DISKFILE,L":GOSUB700
3040 GOSUB360:GOSUB700
3050 IFNA$=DI$THEN3100
3060 IFNA$=CHR$(255)THEN3090
3070 DI=DI+1:IFDI>O2THENDI=1
3080 GOTO3040
3090 PRINT"[196]IRECTORY NICHT GESPEICHERT.":CLOSE2:CLOSE15:GOSUB600:GOTO1000
3100 PRINT""HK$;DI$;HK$" "IN$
3120 PRINT"< 1 > [196]IRECTORY LOESCHEN
3130 [153]"< 0 > (null)URUECK ZUM LEFT$AUPTMENUE
3140 PRINT"[201]HRE [215]AHL? ";
3150 GOSUB800
3160 IFE$="0"THENCLOSE2:CLOSE15:GOTO1000
3170 IFE$<>"1"THEN3150
3180 GOSUB900:PRINT"[196]IRECTORY WIRD GELOESCHT..."
3185 SI(0)=SI(0)+1:SI(1)=SI(1)-1
3190 DI$=DL$:GOSUB460:CLOSE2
3200 OPEN2,8,2,"PROGFILE,L":GOSUB700
3210 IFNE=0THENCLOSE2:GOSUB550:CLOSE15:GOTO1000
3215 SI(3)=SI(3)+1:SI(4)=SI(4)-1
3220 ID=NE:GOSUB300
3230 ID$=DL$:GOSUB400:GOSUB700:IFCO$="+"THEN3210
3240 FL=ID:ID$=PR$:GOSUB100:IFID=FLTHEN3210
3245 N2=NE
3250 I2=ID:ID=FL
3260 ID=ID-1:IFI2>IDTHEN3210
3270 GOSUB300:IFPR$<>ID$THEN3260
3280 DN=DI:KO=NE:CO$="-":GOSUB400:GOSUB700
3290 NE=N2:GOTO3210
3997 REM
3998 REM ---- "[206]EUE [196]ATENDISK" ----
3999 REM
4000 GOSUB900
4010 PRINT"[204]EGEN [211]IE EINE LEERE [196]ISKETTE INS [204]AUF- WERK."
4020 PRINT"< 1 > [206]EUE [196]ATENDISK ANLEGEN
4030 [153]"< 0 > (null)URUECK ZUM LEFT$AUPTMENUE
4040 PRINT"[201]HRE [215]AHL? ";
4050 GOSUB800
4060 IFE$="0"THEN1000
4070 IFE$<>"1"THEN4050
4080 GOSUB900
4090 PRINT"[196]ISKETTE WIRD FORMATIERT...
4100 [159]15,8,15,"N0:DISK MANAGER,TO"
4110 [141]700
4120 [153]:[153]"(null)ROGRAMM WIRD ABGESPEICHERT..."
4130 [148]"DISK MANAGER 4.0",8
4140 [141]700
4150 [153]:[153]"STR$ATENFILE 1 WIRD ANGELEGT..."
4160 [159]2,8,2,"PROGFILE,L,"[170][199](22)
4170 [141]700
4172 [152]15,"P"[199](2)[199]([165]L(M1))[199]([165]H(M1))[199](1)
4174 [141]700
4176 [152]2,"END"
4178 [141]700
4180 [160]2
4190 [153]:[153]"STR$ATENFILE 2 WIRD ANGELEGT..."
4200 [159]2,8,2,"DISKFILE,L,"[170][199](32)
4210 [141]700
4212 [152]15,"P"[199](2)[199]([165]L(M2))[199]([165]H(M2))[199](1)
4214 [141]700
4216 [152]2,"END"
4220 [160]2
4225 [153]:[153]"(null)PEICHERINFO WIRD ANGELEGT..."
4230 SI(0)[178]O2:SI(1)[178]0
4240 SI(2)[178]O1:SI(3)[178]0:SI(4)[178]0
4250 [141]550
4260 [160]15:[137]1000
5996 [143]
5997 [143] ---- "STR$IRECTORY LESEN" ----
5998 [143] ---- " & SPEICHERN " ----
5999 [143]
6000 [141]900:CO[178]0
6005 [153]"STR$IRECTORY EINLESEN:
6006 PRINT"[194]ITTE LEGEN [211]IE DIE [196]ISKETTE INS [204]AUF- WERK.
6007 [141]600
6008 [153]:[153]:[153]
6010 [159]15,8,15,"I
6020 OPEN2,8,0,"$0":GOSUB700
6021 PRINT"[193]LLE [198]ILES SPEICHERN? ";:
6022 GOSUB800:IFE$="J"THENAL=-1:GOTO6029
6023 IFE$<>"N"THEN6022
6024 AL=0
6029 PRINTE$:PRINT:PRINT
6030 FORI=1TO8:GET#2,B$:NEXT:DI$=""
6031 FORI=1TO16:GET#2,B$:DI$=DI$+B$:NEXT:PRINT""HK$DI$HK$;:GET#2,B$:I1$=""
6033 FORI=1TO6:GET#2,B$:I1$=I1$+B$:NEXT:PRINTI1$:GET#2,B$
6035 GET#2,B$,C$:IFST<>0THEN6200
6040 GET#2,B$,C$
6050 D=0
6060 IF B$<>"" THEN D=ASC(B$)
6070 IF C$<>"" THEN D=D+ASC(C$)*256
6080 N$="":HK=0
6090 GET#2,C$:IF ST<>0 THEN 6200
6093 IFC$=HK$THENHK=NOT(HK)
6095 IFHKTHENN$=N$+C$
6100 IFC$<>""THEN6090
6101 DI$(CO)=MID$(N$,2)
6110 IF LEN(DI$(CO))=0 THEN6120
6111 PRINT" "HK$DI$(CO)HK$:IFALTHEN6120
6112 PRINT"[145]"RE$"- [211]PEICHERN? ";
6113 GOSUB800:IFE$<>"J"ANDE$<>"N"THEN6113
6114 PRINT:PRINT"[145]"RE$;
6115 IFE$="N"THENPRINT"- [206]EIN. ":GOTO6130
6116 PRINT"- [202]A. "
6120 CO=CO+1
6130 IFST=0THEN GOTO6035
6200 CLOSE2:CLOSE15
6205 PRINTD"[194]LOCKS FREE.
6210 :
6220 [153]"PEEKITTE LEGEN (null)IE DIE STR$RIGHT$(null)(null) (null)ATN(null)ATNCHR$VAL(null) - STR$ISKETTE INS (null)AUFWERK.
6230 GOSUB600
6240 GOSUB900
6250 OPEN15,8,15,"I":GOSUB500
6255 IF SI(0)>1 AND SI(2)>CO THEN 6260
6257 PRINT"[211]PEICHERUNG NICHT MOEGLICH."
6258 PRINT"[211]PEICHERPLATZ ERSCHOEPFT."
6259 CLOSE15:GOSUB600:GOTO1000
6260 OPEN2,8,2,"DISKFILE,L":GOSUB700
6270 GOSUB200
7024 PRINT"[196]ATEN WERDEN GESPEICHERT..."
7025 GOSUB360
7030 IFNA$=DI$THEN7100
7040 IFNA$=CHR$(255)THEN7200
7050 DI=DI+1:IFDI>O2THENDI=1
7060 GOTO7025
7100 PRINT"[196]IE [196]ISKETTE "DI$
7110 PRINT"WURDE SCHON GESPEICHERT.
7120 [160]2:[160]15:[141]600:[137]1000
7200 I$[178]I1$:KO[178]0:[141]460:[141]700
7210 [160]2
7211 SI(0)[178]SI(0)[171]1:SI(1)[178]SI(1)[170]1
7215 DN[178]DI:[139]CO[179][178]1[167]7620
7220 [159]2,8,2,"PROGFILE,L":[141]700
7230 [129]I1[178]CO[171]2[164]0[169][171]1
7320 ID$[178]DI$(I1):[153]HK$ID$HK$:[141]100
7325 [141]300
7330 [139]PR$[178][199](255)[167]SI(2)[178]SI(2)[171]1:SI(4)[178]SI(4)[170]1:[137]7500
7340 [139]PR$[178]ID$[167]7400
7345 [139]PR$[178]DL$[167]SI(3)[178]SI(3)[171]1:SI(4)[178]SI(4)[170]1:[137]7450
7350 ID[178]ID[170]1:[139]ID[177]O1[167]ID[178]1
7360 [137]7325
7400 [139]CO$[178]"+"[167]7350
7405 N2[178]KO:D2[178]DN
7410 DN[178]DI:KO[178]NE:CO$[178]"+":[141]400:[141]700
7420 KO[178]N2:DN[178]D2:MI[178][171]1:[137]7350
7450 [139]MI[167]7500
7460 IX[178]ID
7465 ID[178]ID[170]1:[139]ID[177]O1[167]ID[178]1
7466 [141]300
7470 [139]PR$[178][199](255)[167]ID[178]IX:[137]7500
7480 [139]PR$[179][177]ID$[167]7465
7490 CO$[178]"+":ID[178]IX:[137]7510
7500 CO$[178]"-"
7510 [141]400:[141]700
7520 KO[178]ID:MI[178]0
7600 [130]
7610 [160]2
7620 [159]2,8,2,"DISKFILE,L
7630 I$=I1$:DI=DN:FR=D:GOSUB460:GOSUB700
7700 CLOSE2:GOSUB550:CLOSE15:GOSUB600:GOTO1000
7997 REM
7998 REM ---- "[211]PEICHERINFO" ----
7999 REM
8000 GOSUB900
8010 OPEN15,8,15,"I":GOSUB700
8020 PRINT"[211]PEICHERINFORMATIONEN:"
8030 GOSUB500
8040 PRINT," FREI GELOESCHT BELEGT":PRINT
8050 PRINT"[196]ISKETTEN: ";
8051 PRINTRIGHT$(" "+STR$(SI(0)),4)" - ";
8052 PRINTRIGHT$(" "+STR$(SI(1)),4)
8060 PRINT"[208]ROGRAMME: ";
8061 PRINTRIGHT$(" "+STR$(SI(2)),4)" ";
8062 PRINTRIGHT$(" "+STR$(SI(3)),4)" ";
8063 PRINTRIGHT$(" "+STR$(SI(4)),4)
8100 CLOSE15:GOSUB600:GOTO1000
8997 REM
8998 REM --- "[198]ILE LOESCHEN" ---
8999 REM
9000 GOSUB900
9010 OPEN15,8,15:GOSUB500:OPEN2,8,2,"PROGFILE,L":GOSUB700
9020 INPUT"[208]ROGRAMMNAME";ID$:GOSUB100:
9025 GOSUB300
9030 IFPR$=ID$THEN9100
9040 IFPR$<>CHR$(255)THEN9050
9045 PRINT"[208]ROGRAMM NICHT VORHANDEN.":CLOSE2:CLOSE15:GOTO1000
9050 ID=ID+1:IFID>O1THENID=1
9060 GOTO9025
9100 CLOSE2
9110 OPEN2,8,2,"DISKFILE,L"
9120 GOSUB360:DD=NE:D3=DI:GOSUB900
9130 PRINT"[208]ROGAMM "HK$ID$HK$
9135 CLOSE2
9140 PRINT"[196]ISKETTE "HK$NA$HK$" "IN$
9150 PRINT:PRINT"< 1 > [204]OESCHEN
9160 [139]CO$[178]"+"[167][153]"< 2 > ATNNDERES (null)ROGRAMM LOESCHEN
9170 PRINT"< 0 > [218]URUECK ZUM [200]AUPTMENUE
9180 [153]"RIGHT$HRE (null)AHL? ";
9190 [141]800
9200 [139]E$[178]"0"[167][160]15:[137]1000
9210 [139]E$[178]"1"[167]9300
9220 [139]E$[179][177]"2"[167]9190
9230 [139]CO$[179][177]"+"[167]9190
9240 [159]2,8,2,"PROGFILE,L":[137]9050
9300 SI(3)[178]SI(3)[170]1:SI(4)[178]SI(4)[171]1
9310 [159]2,8,2,"PROGFILE,L"
9320 [141]300:N2[178]NE:I2[178]ID
9330 ID$[178]DL$:[141]400:[141]700:[139]CO$[178]"+"[167]9400
9340 ID$[178]PR$:[141]100:[139]ID[178]I2[167]9400
9350 FL[178]ID:ID[178]I2
9360 ID[178]ID[171]1:[139]FL[177]ID[167]9400
9370 [141]300:[139]PR$[179][177]ID$[167]9360
9380 DN[178]DI:KO[178]NE:CO$[178]"-":[141]400:[141]700
9400 [139] DD[179][177]I2 [167]9500
9410 [160]2:[159]2,8,2,"DISKFILE,L":[141]700
9420 DI[178]D3:[141]360
9430 DI$[178]NA$:I$[178]IN$:KO[178]N2:[141]460:[141]700
9440 [137]9600
9500 ID[178]DD:[141]300
9520 [139]NE[179][177]I2[167]ID[178]NE:[141]300:[137]9520
9530 DN[178]D3:KO[178]N2:ID$[178]PR$:[141]400:[141]700
9600 [160]2:[141]550:[160]15:[153]:[153]"(null)ROGRAMM GELOESCHT"
9610 [141]600:[137]1000